iT邦幫忙

2023 iThome 鐵人賽

DAY 27
1
自我挑戰組

30 天架設 Node.js - Express 框架:快速學習之路系列 第 27

Day 27 - 安全性考慮:防止常見的 Web 攻擊

  • 分享至 

  • xImage
  •  

之前在介紹 express 串接資料庫的時候,
有說到如果不小心可能會被駭客 SQL injection (SQL注入),
其實還有一些常見的網路攻擊,
今天就是以這個主題為大家介紹一下~

跨站腳本攻擊(Cross-Site Scripting, XSS)

  • 這部分屬於前端的攻擊,利用網頁的輸出欄位(如下圖),打上惡意的 HTML/JavaScript 程式碼 ,使該指令在其瀏覽器中執行,進而取得使用的敏感資料(可能是 cookie 或是用戶電子信箱等用戶資訊)。

    https://ithelp.ithome.com.tw/upload/images/20230925/20162304eEPsRQY63M.png

  • 預防 XSS 攻擊的方法:

    • 嚴格驗證用戶所輸入的表單資料,避免不必要的符號(比如尖括號、單引號或雙引號等)混入影響瀏覽器的運作。
    • 可以選擇套件或已存在的樣版引擎進行開發,這些模板或套件多已有對現有的網路攻擊強化預防,可以減少被 XSS 攻擊的風險。

跨站請求偽造攻擊(Cross-Site Request Forgery,CSRF)

  • 這是一種利用伺服器所信任的網站來發送惡意請求的攻擊,攻擊者利用被害者的身份在未經許可的情況下執行操作,用戶可能會在不知情的情況下,執行了一些使個人的敏感資訊外洩的操作。
  • 預防 CSRF 攻擊的方法:
    • 使 request 和 response 在同源下執行,避免執行到來自外來 domain 來的請求。
    • 一樣建議可以使用已存在的樣版引擎進行開發,降低被網路攻擊的風險。

點擊劫持攻擊(Clickjacking)

  • 這個攻擊比較偏我們使用它網而發生的劫持攻擊,也就是我們要進 A 網站結果卻導去 B 網站,或是執行了無預期的行為。
  • 預防劫持攻擊的方法:
    • 隨時更新瀏覽器的擴充程式,如果是舊版的程式很有可能沒有擋到這類型的攻擊。
    • 如果是我們自己的網站被人安插了劫持攻擊,可以在 header 加上 X-Frame-Options: DENY

阻斷服務攻擊(distributed denial-of-service attack,DDoS)

  • 這部分比較偏向對於伺服器的攻擊,透過機器人或是殭屍網路的瞬間大量請求,使伺服器無法即時負荷,造成網站的癱瘓。
  • 預防 DDoS 攻擊的方法:
    • 透過負載平衡機制,預防在大流量時的瞬間流量造成機器無法負荷,將流量分散到多個伺服器或資源上,這樣即使一部分資源受到攻擊,其他資源仍然可以提供服務。
    • 流量監控,隨時查看是否有異常流量,如果檢測到異常流量時需要立即採取應對措施。
    • 使用雲服務,一般雲服務(比如 AWS),幾乎具有強大的基礎設施和 DDoS 防護機能,足以應對突然大流量的網路攻擊。

參考資料:


上一篇
Day 26 - 優化專案:實作單元測試
下一篇
Day 28 - 優化專案:Connection Pool (連接池)
系列文
30 天架設 Node.js - Express 框架:快速學習之路30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言